package motores;

import java.util.List;
import java.util.Vector;

import estrategias.Estrategia;
import estrategias.Estrategia001;
import estrategias.Estrategia002;

public class Simulador {
	
	
	List<Estrategia> estrategias; 
	
	Simulador(){
		
		estrategias = new Vector<Estrategia>();
		
		Estrategia e1 = new Estrategia001(false,false);
		//Estrategia001 SOLO NORTE
		Estrategia e2 = new Estrategia001(false,true);
		//Estrategia001 SOLO SUR
		Estrategia e3 = new Estrategia001(true,false);
		
		
		Estrategia e4 = new Estrategia002(false,false);
		//Estrategia002 Solo sur
		Estrategia e5 = new Estrategia002(true,false);
		//Estrategia002 Solo norte
		Estrategia e6 = new Estrategia002(false,true);
		
		estrategias.add(e1);
		estrategias.add(e2);
		estrategias.add(e3);
		estrategias.add(e4);
		estrategias.add(e5);
		estrategias.add(e6);
		cambiarSleepTimeDeImpresion(2000);
		imprimirColor(false);
		imprimirTXT(true);
		
	}
	
	public void start(int n){
		estrategias.get(n-1).start();
	}
	
	public void cambiarSleepTimeDeImpresion(int n){
		for(Estrategia e: estrategias){
			e.tablero.cambiarSleepTimeDeImpresion(n);
		}
	}

	public void imprimirColor(boolean c){
		for(Estrategia e: estrategias){
			e.tablero.imprimirColor(c);
		}
	}
	
	public void imprimirTXT(boolean c){
		for(Estrategia e: estrategias){
			e.tablero.imprimirTXT(c);
		}
	}
	
	
	public static void main(String[] args){
		
		Simulador simulador = new Simulador();
		/*
		 * en el constructor se puede cambiar el sleep de impresion
		 * y el tipo de impresion deseada
		 */
		simulador.cambiarSleepTimeDeImpresion(150);
		simulador.imprimirColor(true);
		
		//DESCOMENTAR DE ACUERDO A LO QUE SE QUIERA PROBAR
		
		//Primer estrategia
		//simulador.start(1);
		
		//probando de a un solo equipo...
		//simulador.start(2);
		//simulador.start(3);
		
		//Segunda estrategia
		simulador.start(4);
		
		//probando de a un solo equipo...
		//simulador.start(5);
		//simulador.start(6)
	}

}
